package map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class TestMap {
    public static void main(String[] args) {
        HashMap infoMap=new HashMap();
        //数据
        //登录信息，2个数据
        //数据1：  用户名 username   值 tom
        //数据2：  用户密码 password   值 1234
        infoMap.put( "usernane" ,"tom");//添加数据1,数据的key=参数1，数据的value=参数2
        infoMap.put("password","1234");//数据2
        infoMap.put("password","111");//数据3，password关键字，对应的value发生改变
        //获取map的数据
        infoMap.get("password");//获取数据，根据数据的关键字，获取对应的值，关键字key=参数
        System.out.println(infoMap.get("password"));//如果集合中没有这个关键字，返回null
        //Map遍历，map集合的数据是2部分内容key-value
        //方案1-找到Map中的所有数据的key，然后根据关键字获取value值
        //【1】获取到Map中的所有的key
        Set infoKeys=infoMap.keySet();//获取到Map中的所有的key---set集合
        //【2】遍历infoKeys关键字集合，获取key对应的value
        for(Object obj:infoKeys){
            String key= (String) obj;
            System.out.println("key="+key);//关键字
            System.out.println("value="+infoMap.get(key));//值

        }
        //方案2- Map集合中所有数据到找到，由于数据是双列数据，将双列的数据转换成单列的数据，将单列的数据set集合
        //[1]将Map集合中的双列数据转换成单列数据，放到Set集合中，
        Set infoSet=infoMap.entrySet();//将Map集合中的双列数据转换成单列数据，放到Set集合中，集合Set中的数据类型Map.Entry
        //[2]遍历infoSet集合
        for (Object obj:infoSet){
            Map.Entry element= (Map.Entry) obj;
            System.out.println("key="+element.getKey());
            System.out.println("value="+element.getValue());
        }
        //方案3
        System.out.println("------map的foreach方法遍历---");
        infoMap.forEach((k,v)-> System.out.println(k+":"+v));



    }
}
